// packageCourse/pages/courseDetails/courseDetails.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
    current4:0,
    titleList4:[
      {id:1,title:'人际沟通'},
      {id:2,title:'家庭关系'},
      {id:3,title:'亲子互动'},
      {id:4,title:'两性关系'},
      {id:5,title:'情绪压力'},
      {id:6,title:'职场倦怠'}
  ],
    current:0,
    current2:0,
    current3:0,
    titleList:['综合评价','人气','好评率','价格','价格区间'],
    showLogo:[false,false,false,false,false],
    titleList2:['免费','￥50一下','￥50-100','￥100-500','￥500-1000','￥1000以上'],
    titleList3:['价格升序','价格降序'],
    // 新增：用于标识是否显示contentLiset的画布效果
    showCanvasEffect: false,
    pageNum:1,//页码
    dataList:[],
    totalPageCount:0, //总页数 
    isLoading: false, //节流阀标识
    sortRule: "",//保存当前选择的价格排序规则，初始为空字符串
  },
    /**
   * 生命周期函数--监听页面加载
   */
  onLoad:function(options) {
    this.getData()
  },
  //封装方法
  getData(){
    //节流阀开始
    this.setData({
      isLoading: true
    })
    //加载时显示loading框
    wx.showLoading({
      title: '数据正在加载',
    })
    wx.request({
      url: 'http://localhost:8081/sfzy/course/page',
      data:{
        pageNum:this.data.pageNum,
        pageSize:5,
        classId:1
      },
      method:'GET',
      success:(res)=>{
        let resData = res.data.data.list; // 响应数据
          // 根据保存的排序规则对新获取的数据进行排序
          if (this.data.sortRule === "asc") {
              resData.sort((a, b) => {
                  return a.discountedPrice - b.discountedPrice;
              });
          } else if (this.data.sortRule === "desc") {
              resData.sort((a, b) => {
                  return b.discountedPrice - a.discountedPrice;
              });
          }
        //把请求得到的数据【追加】到data中的articleList变量
        this.setData({
          dataList:this.data.dataList.concat(res.data.data.list),
          totalPageCount:res.data.data.pageTotal
        })
      },
      complete:(res)=>{
        //加载数据完成后关闭loading框
        wx.hideLoading()
        //关闭下拉刷新
        wx.stopPullDownRefresh()
        //数据加载完成关闭节流阀
        this.setData({
          isLoading: false
        })
      },
    })
  },
  //切换传下标方法
  chooseItem4(e){
    this.setData({
      current4:e.target.dataset.index
    })
  },
  //List切换传下标方法
  chooseItem(e){
    let index = e.target.dataset.index;
    let showLogo = this.data.showLogo;
    // 如果点击的是价格选项（索引为3）
    if (index === 3) {
      showLogo[index] = true;
      // 将其他非价格选项对应的showLogo值设置为false
      for (let i = 0; i < showLogo.length; i++) {
          if (i!== 3) {
              showLogo[i] = false;
          }
      }
       // 新增：设置显示画布效果
       this.setData({
          showCanvasEffect: true
      });
    }else if (index === 4) { // 新增：处理点击价格区间选项的逻辑
      showLogo[index] = true;
      // 将其他非价格区间选项对应的showLogo值设置为false
      for (let i = 0; i < showLogo.length; i++) {
          if (i!== 4) {
              showLogo[i] = false;
          }
      }
      // 设置显示画布效果
      this.setData({
          showCanvasEffect: true
      });
    }else {
        // 如果点击的是非价格选项，直接将所有showLogo值设置为false
        for (let i = 0; i < showLogo.length; i++) {
            showLogo[i] = false;
        }
        // 新增：设置不显示画布效果
        this.setData({
            showCanvasEffect: false
        });
    }
    this.setData({
      current:e.target.dataset.index,
      showLogo:showLogo
    })
  },
  //价格区间切换下表方法
  chooseItem2(e){
    this.setData({
      current2:e.target.dataset.index
    })
  },
  //价格切换下表方法
  chooseItem3(e){
    const index = e.target.dataset.index;
    let dataList = this.data.dataList;
    if (index === 0) {
        // 价格升序排序逻辑
        dataList.sort((a, b) => {
            return a.discountedPrice - b.discountedPrice;
        });
        // 更新排序规则为升序
        this.setData({
            sortRule: "asc"
        });
    } else if (index === 1) {
        // 价格降序排序逻辑
        dataList.sort((a, b) => {
            return b.discountedPrice - a.discountedPrice;
        });
        // 更新排序规则为降序
        this.setData({
            sortRule: "desc"
        });
    }
    this.setData({
        current3: index,
        dataList: dataList
    });
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady() {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow() {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide() {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload() {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh() {
    this.setData({
      pageNum:1,//页码
      dataList:[],
      totalPageCount:0 //总页数 
    })
    this.getData()
  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom() {
    //判断节流阀
    if(this.data.isLoading){
      return;
    }
   //没有更多数据，提示
   if(this.data.pageNum>=this.data.totalPageCount){
     wx.showToast({
       title: '没有更多数据了！',
       icon:'none'
     })
     return;
   }
   //当上提触底的时候，加载当前页+1（下一页）的数据
   this.setData({
     pageNum:this.data.pageNum + 1
   })
   this.getData()
  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage() {

  }
})